High side switching is always tricky. There are no easy and simple ways, only various tradeoffs.
PMOS transistors are nice in that they can work within the existing voltage. The gate voltage needs to be pulled below the input voltage by 12-15 V to turn them fully on. The downside is that P channel MOSFETS usually have a little worse characteristics than the equivalent N channel.
N channel may have a better combination of Rdson, voltage tolerance, and cost, but require you to somehow make a voltage higher than the input to drive them. Some high side FET driver chips include a charge pump or other trick for this purpose. Another downside of a N channel high side switch is that the gate must swing a much larger amount, from zero to 12-15 volts above the input. This is because the gate voltage is relative to the source, which is now riding up and down with the voltage being switched. This requires high slew rates to stay out of the partially on region as much as possible, and provides more opportunity for noise pickup elsewhere.
There is no easy solution.
However in your particular case you may not need a high side switch at all. As W5VO mentioned in a comment, a flyback topology only requires a low side switch on the primary. The high side can stay connected to the input voltage.
A center tapped primary with the transformer run in forward mode is another possibility. The center tap goes to the input voltage with a low side switch pulling each end alternately to ground. Again there is no free lunch, which in this case is exhibited by the low side switches now having to withstand twice the input voltage. This is why the center tapped topology is more used for lower input voltages and usually not for worldwide "universal" power, which needs to handle up to 260 V AC or so. That would mean 368 V peaks, and 735 V stress on the low side switches. Transistors with that kind of voltage capability give up other parameters, like gain in bipolars and Rdson in FETs.
There is no free lunch.
Added:
I meant to say this earlier but somehow it slipped thru the cracks. You will most likely need a transformer anyway to get isolation. Unless you really really know what you're doing, you want the resulting supply to be isolated from the power line. The main exception is if the power stays completely inside a sealed box and there is not even a ground connection to the outside world. Otherwise, you run the risk of a user getting connected to the hot side of the AC line should even a few simple things go wrong. There is good reason commercial power supplies are mostly isolated.
Given that you probably want isolation, the problem becomes how to drive a transformer as apposed to how to make a buck switcher directly.
You can drive a small bipolar stepper motor using an L293, SN754410, or L298
If you find a unipolar stepper motor (not uncommon in the paper advance on cheap printers) you can drive that relatively easily with discrete NPN transistor switches. In theory you can do a bipolar motor that way, but the circuit is a bit trickier (it's easy to get both the high and low transistors on and as a result short out the power supply, making them rather warm). Besides printers (copiers?) floppy drives are another salvage source, but hard drives switched to voice coils ages ago. Lots of surplus outfits will sell you motors; if you aren't looking for something powerful enough to run a machine tool you probably won't have to spend much.
Since you are very new to embedded programming as well, you might want to look at one of the "motor shield" type solutions - not necessarily to buy (though of course that is an option) but to study the plans and example software.
If working with a salvaged motor for which you don't have data, start with low voltage/current until you get movement. One thing that can be interesting to do is to take a <1 amp power supply and work out the series of voltage applications to the winding by hand connnecting them to slowly step the rotor. You can buy chips such as the L297 which generate this sequence to control the power driver chip, or you can do it yourself in software.
Actually making a motor may be fairly tricky, but people do make brushlesss motors which are stepper's lower-pole-count cousins. For early experiments ball bearings are likely not your greatest concern - plastic or oil-impregnated bronze sleeves might serve. But rollerblade wheel bearings are fairly cheap: mounting them is going to be a big part of the challenge (and a challenge which starts to stray from the topic of EE stackexchange)
Best Answer
Most of my recent experience in writing actual OS drivers has been with Linux, and the best reference IMO is Linux Device Drivers, 3rd Edition by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman (2005), which has already been mentioned. It is available on Amazon, Safari Books On-Line, and also as a free download.
A couple more books on the same subject are Essential Linux Device Drivers, by Sreekrishnan Venkateswaran (2008) (also available on Safari Books Online) and Writing Linux Device Drivers: a guide with exercises (Volume 3) by Dr Jerry Cooperstein (2009).
For Windows device drivers, the latest book on the subject (published two weeks ago) appears to be Windows 7 Device Driver, by Ronald D. Reeves, Ph.D. (2010). It is also available on Safari Books Online.
An older book, which would cover Windows XP, is: Programming the Microsoft Windows Driver Model, Second Edition, by Walter Oney (2002). It is also available on Safari Books Online.
Another book, which appears to be out of print but available on Safari Books Online, is Developing Drivers with the Windows Driver Foundation, by Penny Orwick and Guy Smith (2007). I assume it would cover Windows Vista.
Finally, Microsoft has pointers to a lot of blogs etc. discussing driver development.