While I can not point to a specific software package to address your requirements, I'd suggest that you might want to investigate the possibility of using something like an Arduino microcontroller to program your motion control.
There are a lot of people using Arduino boards to control stepper motors for robotics applications, which may have a lot in common with the requirements of your application. So you might find an application that you could use as a starting point for your own, even if it did not do everything that you need it to do right off the bat.
There is a stepper motor code library available for Arduino boards, although it looks like its functionality is pretty basic, but maybe it would provide a useful starting point for some custom software.
Arduino - Stepper