Just hook up an If node to your input ‘mask’. If the value is >= 0.5, output 1.0, otherwise output 0.0. Then multiply that result by your dot grid.
You can also try resampling your UVs so that the values are stepped in such a way as it matched your dot grid. I.e. if your dot grid is 100x100: multiply your UVs by 100, round them to whole numbers, and then divide by 100. That’ll leave you with discrete steps in UV space, rather than an interpolating value.
Does that make sense? I’d normally want to make a quick setup to show how, but I’m at work and don’t have access to UE right now.