I've now built 2 table drives for milling machines. The first had gear drive from a DC motor with feedback circuit to control speed, just disengage the gears when not wanted like a lathe leadscrew. The second, which is much easier, is just a stepper motor, tooth belt drive to the leadscrew. No need to disengage, the motor backwinds freely when not energised. Stepper is driven by a PIC, would use Arduino if I did it again.