You could interpolate and make the grid smaller. Basically the idea would be to take those large squares and make them smaller so that the edges are not so obvious. 

I posted the algorithm here with an example and some pretty pictures:

http://gamedev.stackexchange.com/questions/122410/creating-colour-spectrum-by-light-flux-values/123501#123501

Essentially, you would have to take your generated map data array -- and then just stretch it out over a larger map array, making the edges look a lot smoother. This would be an alternative approach to utilizing bitmasking. 

Considering you are already converting your map into a mesh, I would assume this wouldn't be much of a performance hit during gameplay, so as long as you pre-calculate it all during the map creation portion.


**Edit**
Alternatively to this -- you could also just sample a larger dataset so that your world is larger to begin with.