It's not exactly a solution, but you can take advantage of the fact that sandboxes use the same IDs for fields. Create the field in production and then create a new sandbox. You'll then be able to reference the id for the field in the sandbox without worrying that it'll break once it's deployed. This assumes that you'll need to dynamically pass in the field to the report. If however, you don't need to dynamically pass in the field to the report, just the filter parameter, just setup the report so it already has the field in place for the first filter and leave the filter value blank. Then you'll only need to pass in the value to the report and you avoid the whole ID issue in the first place. Of course, if you're willing to go the extra mile, you could use the List call of the metadata api to get the IDs of the Fields programmatically. Then you need to post deploy update the IDs with the correct values for the field you're working with. You can do this with ANT or the Metadata API.