Bi-directional DC Motor Controller
What you are asking is H-bridge Circuit.

To change the direction of motor, you need to reverse the polarity of supply to the motor. 



Above image is an H-bridge made out of Transistors ( Darlington - TIP120 - NPN ) 

When Q1 and Q3 are turned on by providing 5V to Base, they conduct; hence motor turns in Clockwise direction [see foot note]. Q2 and Q4 are turned on, motor turns in Counter Clockwise direction [see foot note].

Integrated H-bridges are available i.e.  "L298N" , It can drive 2 Motors in both directions.

For smooth start and stop, you can use PWM. 

[Depends on how you connect the motor. Terminals of motor which connect to the junction.]

Image Courtesy - Google Images