Missing Encoder Steps

    lcd.print(length,4) + lcd.print("in");

WTF? Why are you ADDING the values returned by the print() methods, when you don't give a rats ass what the result is?

What makes you think you are missing encoder steps? You know how many pulses should be generated when you rotate the encoder one revolution. So, put a mark on the wheel, and roll the wheel exactly one revolution in each direction, while NOT printing anything to the ssslllooowww LCD screen.

Do you get the same number of pulses in each direction?

Do you get the same results when you do print to the LCD?