I'm assuming that the "Master" sheet is your template sheet which you are wanting to copy and the list of names to name each new sheet is in Column A of the "Dates" sheet starting in cell A1. If this is correct, then changing/adding to your code a little as follows should work for you:-
Dim wsM As Worksheet
Dim wsNames As Range, c As Range
Set wsM = Sheets("Master")
Set wsNames = Sheets("Dates").Range("A1:A" & Rows.Count).SpecialCells(2)
Application.ScreenUpdating = False
For Each c In wsNames
If Not Evaluate("ISREF('" & c.Value & "'!A1)") Then
ActiveSheet.Name = c.Value
Application.ScreenUpdating = True
This code will create a new sheet based on the "Master" sheet for each unique name in Column A of the "Dates" sheet without duplication.
Please test the code in a copy of your actual workbook.
I hope that this helps.