How can I program a 3D printer to move using Arduino?
Yes. 
Look up Arduino Ramps 1.4

http://reprap.org/wiki/RAMPS_1.4

Following the programing is all done for you in the firmware. That said you can edit it. Just open the firmware files -- it is compiled when you upload them. Generally however one usually sticks to the preferences header alone..

http://reprap.org/wiki/List_of_Firmware

Over all you are trying to reinvent the wheel. When I started 5-6 years ago it was barely a thing. Now you buy a proven kit and get to the printing. That said if you are truly interested in designing check out. 

https://www.facebook.com/groups/cncbuilddesign/

If you want help on picking a kit. Or what I really think you are looking for. A good place to start. This is one of the larger 3d printing groups. Full disclosure I run this one, but at 6k members I don't recruit. 

https://www.facebook.com/groups/3DPrinterHobbyists/

I got my start in reprap IRC

http://reprap.org/wiki/IRC

Be aware there are trolls that now camp the IRC looking to sell you a printer. I would not engage with them, their printers are usually overpriced and sub par. 

Best of luck.

Most of all I think you need to know it's Reprap all the way. Reprap forums, Reprap printers, Reprap kits, Reprap community. All the commercial printers started off the reprap project. Even if you buy a makerbot (don't) it's Reprap in it's roots.

https://vimeo.com/5202148