I'm going to chime in on the side of people who know a lot more about these things than I do and agree that a ball screw seems like the best option for shifting to multiple positions. However, since I despise programming and electronics, I'm hesitant to rely on switches and sensing devices to accurately place the shifting collar within the gearbox. That's not to say it's impossible to do it, but only that I do not have the experience to make it work myself.
Instead, to reduce the accuracy in rotation needed by a conventional motor to spin a ball screw and accurately position the shifting collar, you might consider using a
geneva mechanism (
see also) as an interface between the shifting motor and the ball screw. An indexing device such as that should help to alleviate concern about the shifting collar's position.
Also, it's really cool.