If you simply want it to move toward your finger and stop there, you need to call
setAngularImpulse() using the vector between your finger location in world space (needs translation from screen space) and the world space location of the object itself. Once it gets near (see note) to your finger, begin slowing it down, or else just set it's velocity to zero.
NOTE: Due to floating point errors, it's unlikely to ever get exactly to the precise touch location, but it will get very, very close. So you need to determine if it's within a small radius of the touch location. Use pythagoras to determine the distance the touch location.
If you want kinematic motion, i.e. dragging the circles, and once you let go, they keep flying off in the direction of motion they were experiencing...
Look into kinematic bodies in Box2D. Kinematic basically means the position is controlled directly by some non-physics input, such as user input. This differs from dynamic bodies which can only be affected in a "natural" way by world physics. This is akin to saying that normal human beings (dynamic bodies) would bounce off a wall if they ran into it, whereas Superman (kinematic) would just bash that wall right down regardless that his weight and size couldn't possibly do that in reality. These sorts of objects tend to have infinite mass, as no matter what the user does, it must be followed as input. So if you had a bucket of bodies, and one of them was kinematic / controlled by dragging, then if you dragged it, all other bodies would fly apart to get out of the way of your drag-input.