I programmed it to output 2.5V (middle of the range of the ESC after checking with the multimeter) and checked it with a multimeter. It outputs 2.37V. Then I connected the output of the DAC to the wire were the potentiometer wiper was connected to the ESC, but... it doesn't work.
You need to replace the pot with a fixed resistor (of same value) and drive the wiper connection separately.
If you try to inject current to the wiper directly it'll disturb the error-sensing circuitry used to detect wiring faults in the pot. This safety feature is seen with motor controllers to prevent runaway motors if a wire breaks or shorts.
No, without a DAC. I have not used such a motor control board and I do not have much experience with motors. I assume that timer 555 is used as a PWM generator with adjustable duty cycle. Arduino has PWM pins. Maybe it would be good to increase the PWM frequency because the link says 'Frequency: 25KHz'. https://arduinoinfo.mywikis.net/wiki/Arduino-PWM-Frequency
If the timer 555 runs at 5 volts, it will almost certainly happen by just turning off its output and instead connecting a pin to the PWM from the Arduino, but it may be best to use an optocoupler between the Arduino and the driver for safety.