In your case random noise may not be ideal, but using arcpy you could add an incremental amount onto each overlapping point to space them out around the original overlapping points.
This code is built around Adding "noise" to overlapping X,Y coordinates so no longer in EXACT same place?
but iterates through a list of spacings and randomly multiplies these values by either 1 or -1 to create points that surround your original points in all 8 compass directions, but leaving one point unchanged. It's a little clunky but it does work. I'm sure a concentric pattern could be achieved with a little more work.
from random import *
rows = arcpy.UpdateCursor(r"C:\\new_shapefile2.shp")
shape = arcpy.Describe("C:\\new_shapefile2.shp").shapeFieldName
increment = range(-50,50,5)
pos_neg = [-1,1]
for n,row in enumerate(rows):
if n > 0:
point = arcpy.Point(row.getValue(shape).getPart(0).X + (increment[n]*pos_neg[randrange(0,2,1)]), row.getValue(shape).getPart(0).Y + (increment[n]*pos_neg[randrange(0,2,1)]))
Here is an image showing the points stacked on top of each other and then another after the script has been executed: