Those that don't understand the science resort to religion. The rule of always opto-isolate a motor driver is a religious belief that seems to have a small cult following, but that doesn't make it good engineering.
If the motor power supply and the micro power supply both have the same ground, then there is little reason for isolating the control signal. I have designed a number of real industrial devices where motors were controlled by microcontrollers with the same ground reference, and I haven't otpo-isolated the control signal once. There can be reasons to do this, but they are unusual. There is no substitute for understanding what is going on. Religion has no place in engineering.
However, you do have to use the right circuit. Your's is a mess, considering there are only 4 components and most of them are wrong or don't make sense. First, the transistor should be a NPN, not a PNP, if it's going to be a low side switch. Second, the resistor and inductor make no sense at all. The resistor will only waste power, and the inductor will cause even higher kickback voltages than the motor by itself. Third, you left off the all-important kickback catch diode. Without it, the switch will be fried when the motor is turned off. Fourth, you need to limit the current into the base.
Here is a circuit that would actually work:
In this case I used a N channel MOSFET instead of a NPN transistor as the low side switch. The advantage is this FET can be driven directly from a 5 V digital output and can support higher motor current without the current gain of the transistor getting in the way. This particular FET can support up to a few Amps and a power voltage up to 20 V. Since it appears you are using a 12 V supply for the motor, this will be fine.
Note D1. The motor is partially inductive. When trying to switch off the current in a inductor, the inductor will make whatever voltage it needs to sustain that current in the short term. Without the diode, it would make enough voltage for the FET to conduct despite being off, which would damage it. The diode provides a safe path for that current that requires no high voltage to be produced.
The very first thing you need to do is to clean up the drive so the gears mesh properly with no wobble. One way to do that is to drill and ream the existing bore of the larger spur gear to accept a bushing with an OD which will give a slip fit in the spur gear's new bore and an ID which will give a slip fit around the music box movement's input shaft. There also needs to be a radial hole in the bushing which will allow the spur gear's set screw to secure the spur gear to the shaft with the bushing interposed between them.
Since what you have already has enough torque to drive the badly misaligned gears as well as the variable load of the music box movement, it seems pointless to change the motor or the gearing when all you need to do is to control the motor speed - without compromising its torque - by using a pulse-width modulated (PWM) motor driver.
In essence, what'll happen with PWM is that you'll use the 4.5 volt source to drive the motor, maintaining its output torque, but you won't leave it on all the time.
For example, if the motor turns at 60 RPM with 4.5 volts across it 100% of the time, it'll turn at 30 RPM with 4.5 volts across it 50% of the time but because you're not limiting the voltage into the motor with a resistor or suchlike, during whatever time it's on it'll output full torque, just what you want.
A simple PWM circuit in hardware is shown, following, with the duty cycle adjustable between about 1% and 99%, and the frequency adjustable by changing the value of C1.
The LTspice circuit list is here if you want to play with the circuit.
Best Answer
What you're seeing is probably a combination of two things: the current capacity of the 9V battery and the resistance of the potentiometer.
Your typical household 9V batteries are notorious for their very high internal resistance. If you're trying to source more than just a few 10's of mA, the voltage across the battery's terminals will begin to drop considerably. You didn't say anything about what kind of motor you have, but I would guess there's a strong chance the battery is having a hard time turning the motor at all, even with low external resistance.
Now for the potentiometer. You have the right idea using the pot as a variable resistor. For the simple experiment you're doing, there's no need to connect the other side of the potentiometer to ground. That's just needlessly wasting current out of the battery. This should be all you need:
simulate this circuit – Schematic created using CircuitLab
The reason it's not working for you is because the 10k value you picked is simply too big. Turning the pot even just a little bit will quickly introduce several hundred Ohms, which will drop almost all of the voltage across the pot resistance before it gets to the motor.
In order to figure out how big the potentiometer should be, experiment with static resistors in series with the motor first. Find the largest resistance that still allows the motor to turn slightly. You'll probably find the value is very low: a few 10's of Ohms or in the low 100's. If you then use a potentiometer in that range, your experiment will work.