The Pointiness surface property is not very suited to this as, as you found, the result is very dependent on the vertex density of the mesh. Simply adding a Subsurf modifier will produce drastically different results.
As mentioned in @RobinBetts answer, it's not possible to automatically 'normalize' such a shader function as Blender would need to evaluate every point to be able to determine the true 'range' in order to determine how to normalize that range to fit 0.0 to 1.0.
A better solution would be to produce consistent results irrespective of the actual vertex density. Such a function isn't available in the current 'official' (2.79b) release of Blender but the development builds do now provide an Ambient Occlusion node that can be used to produce an alternative to Pointiness which is more configurable and that is not dependent on vertex density.
The new Ambient Occlusion node will sample the surrounding mesh to determine effectively how 'flat' that point on the surface is, which could be considered a measure of 'pointiness'. The node allows the strength of the effect to be controlled by adjusting the 'Distance' from which to calculate the occlusion and can also determine the 'reverse' occlusion (as it would be occluded from the 'inside' of the object) which can be used for 'negative pointiness' ("concavity"?).
By combining two Ambient Occlusion nodes - one set to 'Inside' and the other 'Outside' - we can produce an overall 'pointiness' that varies from 0.0 for 'full pointiness' to 1.0 for 'full concavity' as follows :

The above image shows the result on a cube flanked by two Suzannes, one with no subdivision and the other with two levels of subdivision, showing that the results are effectively the same regardless of vertex density and without requiring any manual adjustment - with the color ramp showing red for 'pointiness' through to green (flattness) and blue (concave).
The two Ambient Occlusion nodes will produce values in the range 0.0 to 1.0. These are combined by inverting the range (to 1.0 to 0.0) so that the 'flat' regions of both relate to 0.0), negating one, and adding together to produce a range from -1.0 to 1.0. This is then scaled and shifted to correspond to the range 0.0 to 1.0 by the Divide (by 2) and Add (0.5) nodes.
The strength of the 'inside' occlusion is dependent on the scale of the mesh and this can be adjusted via the Distance of the bottom Ambient Occlusion node. Also note that Blender determines the occlusion based on a number of samples of the surrounding geometry - lower number of samples will be quicker but produce more 'grainy' results; higher number of samples will produce smoother results but longer render times.
