Why can't I vary the speed of a dc motor with only a potentiometer?
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 &ndash; 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.