Sorry for the late reply, but I think this one needs a followup.
I did not read all the posts, but the way you connected your resistors is weird.
Move the resistors from the top, to the bottom:
R2 -> R3
R4 -> R5
R6 -> R7
R8 -> R9
(And then just wire R1 to all switches)
I'd actually done that shortly after getting the first couple of feedback posts here. So good advice
The amount of jitter on the ADC is quite normal, (as has already been mentioned)
Adding an RC filter to the "senseKey" (Best is close to your ESP8266) can improve this, but also averaging multiple ADC values helps.
So this is an ESP32 but yes, I'll look at doing that. However, it cannot take half or a full second from a button push to detection since this is for a small game, so I'm not sure I'll ever get to use the average idea here. As long as the values don't overlap - that one button push cannot overlap an interval of another, this circuit will do fine. Of course once I do 2 key presses the chances of overlap increases dramatically. I may just keep the double-push thing out for now - not entirely needed.
Also:
You do not need the "PWR_FLAG" everywhere on all power nets in KiCad. They are only needed for IC's that have a "Power Input" pin and if that power input pin is not connected to a "Power output pin" somewhere else on that net.
You are also doubling up on you net labels. Why add a "GND" label if a wire is already connected to a GND symbol?
(same for +3.3V)
So while NOT a professional at this, KiCAD is pretty much the only tool I know detailed enough to be useful for PCB/Schematics. I certainly don't have experience from the closed source expensive design tools. So perhaps KiCAD just do things a bit differently. If I do not put PWR_FLAG on GND and +3.3V the ERC fails. If I should guess it's because the connector I use have the generic pins defined as passives. So yes, I am not a fan of PWR_FLAG at all, but I've not yet been able to make any schematic pass ERC without using them. Of course I could ignore them, but what do I know what's correct and not?
I label the track in addition to using the power-symbol to have the net names listed correctly when I make the PCB. I cannot tell why there is a difference, but without a ground symbol I know people complain and without the label, I don't get the right net-names. For this very basic circuit it really didn't matter, but that's how I've made every circuit and often had to go back and add more labels, so the PCB net-names made sense vs. all the nonsense of "this is pin XY1C net". Perhaps the issue with PWR_FLAG is that I need to make special symbols for power connection, and I'll rather just have the extra flag than to maintain two of the same things with different attributes.