How to short a DC motor?
To stop the motor hard you short its connections.  A simple but not elegant way is to use a relay.  Make sure the first transistor is off, then energize the relay.

A more elegant solution would be to put a P channel FET or PNP transistor accross the motor:



Q1 is used to turn on the motor as you have it now.  Q3 will short the motor and therefore electronically brake it when turned on.  R2 keeps Q3 off when no current is being deliberately drawn from its base.  Q2 is a current sink when enabled, which turns on Q3.

The worst case current the brake has to handle is the maximum current you ever put thru the motor, which you say is 700 mA.  Let's say Q3 has a minimum guaranteed gain of 25.  That means it needs 28 mA to turn on.  If BRAKE is a 5V logic signal, then there will be about 4.3 V accross R3 when BRAKE is high.  4.3V / 100&Omega; = 43 mA, which is good enough to keep Q3 saturated with up to 1.1 A of collector current.  A little margin like that is good, and the extra base current will keep the saturation voltage of Q3 low when on.

You shouldn't need to turn on the brake for very long each time, so a little extra current thru Q2 shouldn't matter.  Make sure Q1 is off, wait a few &micro;s to make sure it has finished turning off, then enable BRAKE.  With experimentation you can find the minimum brake time to guarantee the motor has stopped.  Add a little, then turn off BRAKE after that.