Your duty cycle register can be directly fed with the PCM bytes - assuming you are using an 8-bit pwm channel. Should be easy enough from flash itself - no need for RAM.
However the PWM frequency needs to be much higher than that of the audio content, which i suppose is < 8KHz. A 10x factor is OK. Higher is better. However with the standard 8-bit AVR's the fast PWM can only do around 78KHz @20Mhz. If you are using an AVR with internal PLL then you can go higher.
The trick is to change to the next PCM byte/ PWM duty cycle after exactly 62.5uS or at the same rate as the original sampling of 16KHz. This can be easily done by using a 2nd timer.
Your output needs to be LPF'd, and usually a simple RC is enough. Since the audio is < 8Khz, and PWM is ~78Khz this should be enough.
This output will be centered at approx Vcc/2 ~ 2.5v typically.
Which AVR are you planning on using ? Note that each 1 second of your wav file will occupy 16Kbytes, and your code needs to be there too !!