Можно конденсатор ~10нФ параллельно ножке добавить. И будет
работать как бы не лучше, чем с подтяжкой: там ток помехи
ограничивается сопротивлением резистора подтяжки, которое больше
относительно низкого импенданса конденсатора на высоких частотах
(которые обусловлены скоростью опроса кнопки, а не характеристикой
помехи). Разумеется при этом есть последовательный резистор ограничивающий ток из ножки (через конденсатор и кнопку). Суть в том, что нет смысла 100% времени поддерживать на ножке какой-то потенциал соответствующий состоянию кнопки -- он нужен только в ту микросекунду, когда кнопка опрашивается, и так ~20 раз в секунду.
Алгоритм: выдали лог. 1 на короткое время, достаточное для заряда конденсатора, перевели ножку на ввод и спустя микросекунду опросили.
При нажатой кнопке потеря энергии соответствующая вытеканию тока ~0.7мА (прямо-пропорционально зависит от ёмкости). Если сравнивать с резистором подтяжки, то это порядка 4.7кОм, при этом конденсатор может иметь импенданс порядка десятков ом, а не килоомы, так что помехоустойчивость куда выше.
Понятно, что такое решение ограничено индуктивностью шлейфа от МК до самой кнопки. На очень больших расстояниях время опроса кнопки может быть неприлично большим. Но в пределах одной платы, или даже размеров настольного прибора -- вполне хорошее решение на мой взгляд.