The Arduino is not designed for low power. For an answer to another question I recently estimated the Uno's current at 50 mA, at a 9 V input that's 450 mW. Part of the reason for the high power requirements is that Arduino has 2 microcontroller running at high clock frequencies.
Switching to the MSP430 platform looks like a good idea. I've used MSP430s running of a 32.768 kHz crystal which needed only 4 \$\mu\$A. (Power-down modes can go lower, but I couldn't stop the 32 kHz oscillator, because it took too long to start up.)
Then there's Xbee. A current of a few tens of mA is not unusual for RF modules, but maybe you can cut the average power consumption by switching it off for most of the time. This module has a transmit current of 48 mA, and a 27 mA receive current. If you would only transmit, and do that for 100 ms every minute your average current is 80 \$\mu\$A. Add 5 \$\mu\$A for standby and the MSP430, and a 250 mAh button cell will power it for 4 months. That's less than you specify, but somewhat better than the 1 hour you have now.
Other measures: try to get the Xbee's duty cycle further down. How much time do you really need to transmit a measurement (the 100 ms was a guesstimate)? Do you have to send every minute? Remember that 95 % of the current goes to the Xbee. If you can send once every ten minutes instead of every minute the battery will last 2 years! Smaller gains: can you shut the Xbee completely down instead of going to sleep; would save you 1.7 \$\mu\$A. Can the MSP430 run at a lower clock speed?
You will find other RF modules which require less power, but the 2 mile range may be a problem then.
A pi is indeed, not a wonderful solution for motor control - as an embedded linux device it is not ideal for realtime control, and as one which depends on an SD card for a root filesystem it is notoriously fragile in state especially where unexpected power loss may be an issue. Being based on a set-top-box rather than mobile SoC, it also lacks most of the power control features one would expect for a battery powered system.
But doing USB host with an Arduino is not a great idea either - the host chip ends up costing more than your main microcontroller.
If you want to keep the ADK idea with the external device as the host, look at something like a STM32F4 or KL25Z as an inexpensive embedded USB host (the STM Nucleo boards are in the $11 range, though the USB signals only exist on pin headers rather than a USB connector)
Another option is to turn things around and use the phone as a host, with the embedded processor as a device. This is in a way more sensible, and can put you back in Arduino territory, however it does mean that you either have to come up with a way to power the phone while doing this, or end up running down its battery.
For simple motor control, running modulated signals through the headphone jack is worth looking at as well.
(I'm aware this is an old question, but there's nothing particularly dated about it. Maybe with an answer we can retire it so that it doesn't bubble up again in the automatic churn).
Best Answer
Devin, you have definitely found modules that they do not put a datasheet out on. It may be because they are older though. I will look more, but I only found a tariff ruling which defines the devices as full duplex FM voice modulators. You may be able to learn a lot with a scope, or it may be a waste of you time.
I will look into it more, interesting part.