Use an even smaller epsilon. Allow the user to avoid the epsilon business if they want to preserve their alpha values.
Use a carefully shaped trapezoid instead of a box filter to avoid jumps between pixel values.