CMOS 555 is better (LMC555, 7555..). Your CCS is so weak, the pin leakage (input bias current) is probably dominant. Propagation delay (at the smallest C values) will also dominate, so that you end up measuring a combination of delay plus capacitance, not capacitance by itself, nice and proportional.
You can do the same thing with an MCU pin: set the pin output-low, then input-high (passive pullup). Start timer at the same instant, and stop timer when pin crosses threshold (use an input capture pin, or pin-change interrupt to sample CNT, or get the analog comparator involved (if available), etc.).
Probably won't be very sensitive to small changes in capacitance, but you can repeat measurements to average out noise, and you can get arbitrarily long periods with an external pullup resistor rather than the internal pullup (which will also be more stable vs. temperature).
Better still than measuring single periods: measure frequency. Small changes in timing are imperceptible from cycle to cycle, but accumulate over time. Measuring frequency using the timer is more complicated, but there are numerous sketches showing how to do it.
To get frequency, you need an astable oscillator, which the 555 can still do, or the MCU can do to a certain extent, depending on available hardware. (MEGA might not be able to do this with low latency, but XMEGA I think can pull it off, using events and analog comparator? STM can probably do it as well.)
And yeah, consider replacing the varicap with a potentiometer. What could be easier than using an ADC to measure a static voltage?
Speaking of ADC, and impedance as mentioned above -- you can set up a crude impedance divider, using GPIO pins, series resistors or capacitors, and the varicap. By sampling the voltage on the varicap, at a reliable time delay, you'll sample some point along the RC (or other) discharge curve that the capacitance will go through when pulsed by those GPIOs. I say GPIOs plural, because you may want to use several in parallel, with a range of series impedances (R or C), to cover that wide of a range.
Tim