Generate a true analog signal using Arduino
I see that MCP4725 uses Wire library with the default clock of 100,000 kb/sec.
At a rough estimation each call to MCP.writeDAC or MCP.getValue will be at least 32 bits long and you use three of them in each loop.
This one:
   Serial.println(MCP.getValue());
   if (MCP.getValue()&gt;threshold)

is redundant, you should store the value in a temporary variable and use-it in both &quot;print&quot; and &quot;if&quot;.
With 10us for each bit that means 1060 us for each loop. The analog read also takes 100us to complete. Over all 1160us minimum.  Is the MCP.getValue() really needed?
That means that your maximum sample frequency is 860hz and the maximum bandwidth of 430hz. I doubt that this is an acceptable bandwidth for a microphone.
Even so, the output signal will not look similar at all, you need a higher bandwidth or to limit,  if possible, the bandwidth of the input signal.
In some limits you can modify the MCP4725 library to use fast wire clock four times faster if it suits your requirements. If you also drop the two MCP.getValue() calls that will be again almost three times faster, up to 5khz.
Also you might search for faster ADC on Arduino.
Update after OP microphone amplifier schematic.
The ADC works only with positive voltages. Short the output capacitor of the amplifier!