How to smooth minecraft like terrain like surface nets, but only certain voxels .

I have a simple boxel terrain made by checking each neighbor and creating a quad. I want to smooth the voxels like surface nets but i don’t have much knowledge in combining the two as i still want to be able to add other voxels (stairs, slabs, etc). I would appreciate any feed back.

Here is a blog post about and comparing different voxel smoothing algorithms.