I’ve done some research on soil moisture sensor in the past, which you can find in this blog post:
The chirp sensor seems to be quite reliable:
This is a capacitive sensor (with no expose leads, so it’s more reliable) and it uses the I2C interface.
I’ve taken a quick look at the Vinduino sensor — it seems to be a resistive sensor, but it uses two digital pins to create AC to avoid corrosion. The two digital pins are used to create alternating polarity, but also to create a state where no voltage is applied on the sensor at all. To reduce the number of digital/analog pins, one thing you might be able to leverage is that the analog pins on Arduino can also be used as digital pins. So perhaps you can use two analog pins. Set one as digital and output a high, while the other is set as analog for reading signal. Not sure whether this would work or not (because the analog reading will end up affecting the net voltage applied on the sensor)