If there are interrupt-on-change (or any other type) flags in port-linked registers, you can just read the flag as your input. Such flags are set, but not cleared unless you do something to clear them. No need to enable interrupts for that to work. At least PIC chips work that way. Then when ready for the next test, clear the flags. That way, there is no "hysteresis," no delay, and no additional hardware. Of course, there are other ways to do software debouncing