Closed loop control of 29:1 Metal Gearmotor 37Dx52L mm with 64 CPR Encoder

I'm trying to control these motors for a balancing robot project, and the problem is I'm finding that open loop control and even closed loop PID control gives insufficient performance. In particular, it has problems following commands for low speeds, probably due to static friction. Does anyone have some code for this or a similar motor that includes friction feedforward compensation?

I'm driving the motors with the Arduino Motor Shield R3 powered by a 3S LiPo battery. I'm using the AdaEncoder library to read the encoders and the PID library on the Arduino website for my PID control.