Well I must be honest, I haven't built a CNC (yet) but I have done a considerable amount of work interfacing steppers and DC motors over the past 5 months, so here's what I think...
Stepper motors have some pretty cool characteristics which seem to make them ideal of CNCs. The first is the resolution. Generally you can turn the rotor of a stepper motor in less than 2 degree increments, and coupled with a geared system (Which you'll have to do because the output torque is SHITE) the open-loop precision that can be achieved is quite impressive. Saying that a similar resolution can be achieved with a DC motor.
If you have say a quadrature encoder which emits 16 pulses/rev, if fitted with a spur gear head the encoder feedback can shoot upto 1200+ pulses/rev at the motor output. The only problem here is that DC motors are more suseptable to back-forces acting on the motors output, where stepper mtors generally have considerable holding torque, which resists rotative influence from system its supposed to be driving.
You could, to a certain extent control the position, and resist outside influence through software. If you used a parallax propeller multi-core processor, you could program the DC motor to operate as a servo, where disparity between the assumed motors position and any renegade encoder pulses can be used to corrent the motors position. But its still not going to be as precise as a stepper...which is the reason we use CNC's in the first place.
Hope this helps and sorry if i've gone on...its my first post and got excited...
All the best
Martyn