Question: motors and power supply for balancing robot

I'm quite fresh to arduino and i've been wandering about my choise of motor,
i have a balancing robot which i built using L298N dual motor driver, 2 smart car motors (can be found here 4 pcs smart car motors)
and 4 AAA batteries.
I want to step it up a level, because it seems to me that it dosn't have enough power to balance itself (it turned to be heavier then i thought), so i was thinking of getting strongers motors and a better power supply.

My robot is about 2kg right now.

I found this:
12V DC 300 RPM High Torque Gear-Box Electric Motor
it seems alright, but from my understanding 5 watts is a bit weak. this option though is much more in budget.

Than i found this:
SainSmart 30:1 Metal Gearmotor 37Dx52L mm with 64 CPR Encoder 12V 366rpm
which looks much more powerfull, and has an encoder (which i don't need at this stage but might be nice for later use), it's much more expensive.

Would you recommend any of them?
What battery should i get? i heard LiPo are good, but i don't know which one i should get...
And if i get a LIPO battery, i guess i would need a charger also?
Considering i get a nice battery, would it be a good idea to connect the arduino through the 5v output on the motor driver?