I never got back to this, because I switched from an ESP8266 to an ESP32 for BlueTooth. The ADC on the ESP32 worked fine for reading the KY-023 Joystick values. Although those joysticks are not the best for fine control. They tend to jump high or low and also Max out at half the range of movement as others have noted. I was able to smooth out the motor control in my app by using a timer in the B4R code. I read the values directly and then only moved the motor power up or down slowly on each timer loop.