Komputer und Kompiler sind von Geburt an schwachsinnig. Man muß oft alles genau erklären:
pwm_wert = (int)(((long int)100 * (long int)adc_wert) / (long int)1023);
Dann hat er keine ausrede mehr.

("C" kommt von "casten", "C++" von "noch mehr casten")