Rozwiązanie, które mam już przetestowane w praktyce (sprzęt estradowy) planuję zastosować również w bazowej wersji płytki.
Każde wejście analogowe będzie wyglądać tak:

1. Potencjometry podłączone kablami ekranowanymi, 3 lub 4 (łatwiej dostępne) żyły w ekranie. Ekran połączony z masą tylko z jednej strony - przy gniazdku na płytce.
2. Cała część analogowa zasilona z oddzielnego niskoszumnego stabilizatora 3.3V. To napięcie będzie użyte jako AREF w Arduino, ADC będzie mierzył napięcie z zakresu 0-3.3V. Kolejna zaleta tego rozwiązania to ochrona przed zwarciem. Zastosuję jakiś mały stabilizator na ok. 100mA, może mniej. W przypadku zwarcia VDDAF do masy (może się zdarzyć podczas okablowania) ograniczy on prąd i ochroni port USB. USB zresztą też będzie miało swój zestaw zabezpieczeń.
3. Zaraz na wejściu 1 filtr RC usuwający śmieci powyżej 1.5kHz. Dioda BAT54S + rezystor 1k zabezpieczają wejście przez przepięciami, ujemnymi napięciami itp. Standardowe zabezpieczenie.
4. Dalej mamy wtórnik napięciowy na wzmacniaczu operacyjnym. Rezystor 2M2 nie obciąża praktycznie wcale potencjometru lub czujnika Halla, ale polaryzuje wejście do masy w przypadku, gdy nic nie jest połączone. Zostawianie "wiszących w powietrzu" niespolaryzowanych wejść nie jest dobrą praktyką. Wtórnik napięciowy ma niską impedancje wyjściową, zalecaną do wysterowania wejścia ADC.
5. Na końcu jeszcze jeden filtr RC, umieszczony blisko wejścia ADC. W momencie próbkowania przetwornik generuje dość sporą szpilkę:

To jest zrzut ekranu z oscyloskopu, program MegaJoy, wejście A0, odłączony potencjometr.
Parę innych czynników ma na to wpływ, ale możemy przyjąć, że dla klasycznego podłączenia potencjometru prosto do wejścia ADC, te szpilki będą propagować po całym okablowaniu. A zwłaszcza, gdy potencjometry będą w okolicy środkowego położenia. Ważne jest, żeby te szpilki zostały wygaszone jak najbliżej wejścia ADC. M.in. z tego również wynika zalecenie, żeby na wejścia ADC podawać sygnał o niskiej impedancji. Wtórnik napięciowy to załatwia, a drugi filtr nie pozwala na to, żeby zakłócenia latały po całej płytce i kablach. Przy okazji dodatkowo tłumi szum.
6. Wtórnik ma jeszcze jedno zadanie - ochrania i separuje wejście ADC od świata zewnętrznego. Łatwiej i taniej jest wymienić tani wzmacniacz operacyjny niż cały procesor, gdyby doszło do jakiejś awaryjnej sytuacji.
Żeby choć trochę poprawić sytuację zastosowałbym po pierwsze ekranowane kable, po drugie filtr RC 1k-10k (dobrać doświadczalnie)+100n do masy umieszczony przy samym wejściu Arduino.
Jeszcze odnośnie kwestii zasilania. Najprawdopodobniej przewidziane będzie dodatkowe gniazdo MicroUSB i automatyczny przełącznik zasilania. Jest cała masa tanich zasilaczy z wyjściem MicroUSB (np. te do RaspberryPi). Układ po wykryciu zewnętrznego zasilania przełączy się na nie, a zaszumione USB zostawi w spokoju.
Zastanawiam się też na opcją dodania sterowników LED na I2C. Joystick nie odbiera danych z PC, ale co można zrobić, to np. podświetlenie przycisków. Każdy z przycisków miałby dodatkowy rejestr do konfiguracji podswietlenia, coś w rodzaju:
BtnXled = 0 ; //brak
BtnXled = 1; // toggle, wciśnij -zapala LED, następne go gasi
BtnXled = 2; //momentary, LED świeci tylko, gdy przycisk jest wciśnięty, tak jak kontrolki w windows
128 LEDów plus cała reszta układu to już może być za dużo dla jednego portu USB. W takim wypadku zalecane będzie zasilanie zewnętrzne.