More expensive, but have you considered a stepper motor and driver?
Google ELS or electronic lead screw for some idea of what is capable.
Alternatively a simple controller would allow variable speed and allow precision end stops, so for example a single button press could feed to a point and then return quickly.
You could start off simply with the stepper and driver, driven from a simple 555 based astable to provide speed control and a fwd/bwd switch wired to the direction input of the driver.
That could be later replaced with either a custom microcontroller based driver or something along the lines of the ELS.
Just a thought.