How Do I Limit My Motor Current While Maintaining Voltage Drop Across It?

Your voltage dropped b/c a 9V battery is just a poor voltage source. If you use a few AA batteries or larger in series, your voltage drop will be much less.

In motor control - and in many fields - you will want to use pulse-width modulation (PWM). Imagine toggling your switch thousands of times each second. If you pulsed it half the time, then you would have a 50% duty cycle, or half of the effective voltage on the motor.

PWM is the standard method of controlling voltage and/or current through motors and in DC/DC converters.

I don't use Arduino very much, but I believe that it has a PWM on board and analog functions that are actually PWM. I think it operates at ~500Hz. I'm not sure if this is fast enough, but it won't hurt anything to switch too slowly. Use it to control your MOSFET directly (remove the switch) using the analogWrite function. To implement this, move your MOSFET gate to an analog or other PWM and use the appropriate function to apply PWM.

If your PWM frequency is too low, then you will be able to hear the motor responding to it. For instance, if it is 1Hz, then the motor will turn on for half a second, then off for half a second. You will be able to hear that clearly. Increase the PWM frequency until the motor runs smoothly. There are other reasons to change the PWM frequency as well, but in your stage of learning this should be sufficient. Enjoy, motors are fun!