AmbiLobe:
I bought an Arduino Due because it has analog outputs called DAC0 and DAC1. I found out its RAM is 96 kilobytes, bigger than other Arduinos. I like it. It works as expected.
I am new to this stuff as well (I do have a bit of experience in mechanical design) ....
PWM is good to control the motor speed (motor on the head of a lathe or mill for example) but when you are interested in controlling the X,Y,Z axis I believe that you need digital control. Digital output is also what the stepper motors are expecting.
ADC might be used to verify the location on a given axis but I have a feeling using digital input to zero calibrate the stepper motors would be more reliable not to mention more in line with what happens when a 'good' machinist is using a manual mill or lathe.
Unless one is talking about something along the lines of microengraving then relays, servo drivers or power transistors would be needed. Any of the Arduino boards should have an adequate number of digital pins to control 3 axis plus a power head. I think the optimum choice is going to come down to form factor, cpu power and ram. The other though that occurs to me is that using something like the UNO or the Mega that has a number of motor control shields (Adafruit, Sparkfun and SainSmart come to mind) available could be advantageous (no point in reinventing the wheel).
The hardware index lists all the 'official' Arduino boards made and the differences between them.
I think the first thing that I would do is a google (not bing) search for Arduino Shield and see if there was something appropriate. If so then that may control the choice of microcontroller board.
Now my stupid question:
I'm going to need to control 9, possibly 10 stepper motors for this project
Why? I can see three for X,Y,Z; one for turntable and possibly one xy rotation.
With the power head (but I would use straight DC rather than a stepper for that) that brings the count up to six.
Stock feed could add one.
I have no idea what tool change would require. That would depend on whether you are driving the tool (as in a mill) or the work piece (as in a lathe). Of course you could be driving both. If so that is going to be one very complex machine.
Use The EasyDriver Stepper Motor Driver + Arduino
see this URL: http://bildr.org/2011/06/easydriver/
each stepper motor: 1 digital pin for direction, 1 PWM pin for control (1,600 steps per revolution)
(actually I do not believe that has to be a PWM pin ...
I think any digital pin would work depending on the speed you need to drive it)
I will go so far as to make one prediction:
You biggest problem will be minimizing backlash on your drive screws or stretch in the drive cables (depending on you drive choice).
Suggestion:
Use two split nuts on your drive carriage for each axis: one in a fixed position, the second adjustable.
Periodically adjust the nuts so that they ride snuggly against opposite sides of the thread.
The nuts should be a softer metal (brass) than the screw (steel) so you can replace them when wear becomes a problem.