I have a couple soil sensors running with simple bolts in the ground. No two sensors will read the same in the same soil, but that is because they are just a relative setup not an accurate setup. Doing what is recommended above is necessary. Determine what % correlates to watering time on the plants. Once this is done it is set and forget.
Also, on your batteries
"The phenomenon itself is very real. If a NiCd battery is repeatedly charged after it has only been partially discharged it will develop a lower voltage and a lower capacity. Fortunately, this effect is reversible by conditioning NiCds."
So I vote to help your poor cheap lamp batteries out by writing logic into your arduino that varies by battery voltage. You can write it in ranges
battery > X volts report every Y minutes
battery > Z volts report every P minutes
battery > .....etc
also to keep your battery in good shape you may consider every so many days ( 2 - 5 ) writing logic that says
every Q days report every 20 seconds (or another interval that will drain battery) until battery voltage = min
sleep until battery voltage = max