Take a look at the desktop gizmos which have a dolphin swinging back and forth (or similar action). The circuit is very simple, consisting of a transistor which energizes a tapped inductor. The approaching magnet causes a brief pulse to the bias pin of the transistor, which in turn turns on the inductor, which gives the magnet a brief boost as it goes by. The swinging action continues as long as the battery lasts.
This type of motor uses little power, and does not take up much room. I believe I saw it used in an old programmable thermostat, driving the 24-hour clock dial. It was powered from a small 1.5V battery.