What is the best way to control a 12V DC motor?

I just recently purchased a pretty high power DC motor, http://www.pololu.com/product/1447, and I was wondering what the best way to control the speed was?

I have a 12V 15a power supply and I was going to use an arduino to activate a transistor then use a potentiometer to control the speed. At the moment, I only have 1/2 watt 5k and 10k linear pots and I don’t believe the power rating on these resistors are high enough as the DC motor has a stall torque of 5A.

Thanks

Pot into the ADC of the arduino.

PWM from the arduino to the transistor.

This works if you do not need to reverse the motor’s direction.

This is the typical method and is very commonly used. There are many examples on the web on how to do this with an arduino. Pololu, Adafruit and SparkFun all have some info on how to do this.